/*
 * @Description: 
 * @Author: Aroma
 * @Date: 2024-09-03 19:08:52
 * @LastEditors: Aroma
 * @LastEditTime: 2024-09-03 19:32:37
 * @别瞎看: 你个无脑牛马
 */
import java.util.Scanner;
public class Test_PerfectNumberChecker{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入一个整数: ");
        int number = scanner.nextInt();

        if (isPerfectNumber(number)) {
            System.out.println(number + " 是一个完全数。");
        } else {
            System.out.println(number + " 不是一个完全数。");
        }

        scanner.close();
    }

    // 判断一个数是否为完全数
    public static boolean isPerfectNumber(int number) {
        if (number <= 1) {
            return false; // 小于等于1的数不是完全数
        }

        int sumOfFactors = 0;
        for (int i = 1; i <= number / 2; i++) { // 只需检查到number的一半
            if (number % i == 0) {
                sumOfFactors += i;
            }
        }

        return sumOfFactors == number;
    }
    // public static void main(String[] args) {
    //     Scanner scanner=new Scanner(System.in);
    //     //提示用户输入一个整数
    //     System.out.println("请输入一个整数：");
    //     int number=scanner.nextInt();
    //     if(isPerfectNumber(number)){
    //         System.out.println(number+"是一个完全数");
    //     }else{
    //         System.out.println(number+"不是一个完全因数");
    //     }
    //     scanner.close();
    // }

    // //判断一个数是否为完全数的方法
    // public static boolean isPerfectNumber(int number){
    //     //假设值为1时
    //     if(number<=1){
    //         //不是完全数
    //         return false;
    //     }
    //     //定义一个因数的和
    //     int sumOfFactors=0;
    //     //for遍历该数的一半，因为一个数的因数不可能大于它本身的一半
    //     //定义 i 为因数
    //     for(int i=1;i<number/2;i++){
    //         if(number%i==0){//判断是否为因数
    //             sumOfFactors +=i;//求和
    //         }
    //     }
    //     return sumOfFactors==number;//因数和为原数本身
    // }
}